HTMLify
sliding window minimum.java
Views: 1 | Author: cody
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | // sliding window minimum java solution import java.util.*; class SlidingWindowMinimum { public ArrayList<Integer> getMinimums(ArrayList<Integer> nums, int k) { if (nums.size() == 0 || k <= 0) { return new ArrayList<>(); } ArrayList<Integer> ans = new ArrayList<>(); Deque<Integer> dq = new LinkedList<>(); for (int i = 0; i < nums.size(); i++) { while (!dq.isEmpty() && dq.peek() < i - k + 1) { dq.poll(); } while (!dq.isEmpty() && nums.get(dq.peekLast()) > nums.get(i)) { dq.pollLast(); } dq.offer(i); if (i >= k - 1) { ans.add(nums.get(dq.peek())); } } return ans; } } |